<?php

class LoginHandler {
	
	private $db = null;
	
	public function __construct(Database $db) {
		$this->db = $db;
	}
	
	// Loggar in användaren
	public function login($username, $password) {
		
		// Matcha mot databas
		$match_user = $this->db->select_one("SELECT user_id FROM users WHERE user_name = '$username' AND user_pass = '$password'");
		
		// Om användaren finns...
		if ($match_user != null) {
			return true;
		} else {
			return false;
		}
		
	}
	
	// Testar inloggningsfunktioner
	public function test() {
		
		// Logga ut
		$this->logout();
		
		// Kolla att ingen är inloggad
		if ($this->is_logged_in()) {
			echo "Fel: Ingen borde vara inloggad.";
			return false;
		}
		
		// Försök logga in med fel uppgifter
		if ($this->login("fel", "fel")) {
			echo "Fel: Det gick att logga in med fel uppgifter.";
			return false;
		}
		
		// Kolla att ingen är inloggad
		if ($this->is_logged_in()) {
			echo "Fel: Ingen borde vara inloggad.";
			return false;
		}
		
		// Försök logga in med rätt uppgifter
		if (!$this->login("1dv408", "1dv408")) {
			echo "Fel: Det gick inte att logga in trots rätt uppgifter.";
			return false;
		}
		
		// Kolla att någon är inloggad
		if (!$this->is_logged_in()) {
			echo "Fel: Någon borde vara inloggad.";
			return false;
		}
		
		// Logga ut igen
		$this->logout();
		
		// Kolla att ingen är inloggad
		if ($this->is_logged_in()) {
			echo "Fel: Ingen borde vara inloggad.";
			return false;
		}
		
		// Försök logga in med delvis rätt uppgifter
		if ($this->login("1dv408", "fel")) {
			echo "Fel: Det gick att logga in med delvis fel uppgifter.";
			return false;
		}
		
		// Kolla att ingen är inloggad
		if ($this->is_logged_in()) {
			echo "Fel: Ingen borde vara inloggad.";
			return false;
		}
		
		// Lyckat test
		return true;
		
	}
	
}

?>